/*
 * Niiuzu
 * Copyright (C) 2011  Thierry Nowak
 * 
 * This program is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later
 * version.
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 * details.
 * 
 * You should have received a copy of the GNU General Public License along with
 * this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package com.niiuzu.server.dao.impl.dto.object;

import javax.persistence.Entity;
import javax.persistence.Id;

import com.googlecode.objectify.Key;
import com.googlecode.objectify.annotation.Parent;
import com.googlecode.objectify.annotation.Unindexed;

/**
 * DTO - Données persistantes représentant les identifiants de connexion d'un
 * utilisateur.
 */
@Entity(name = "UserCredentials")
@Unindexed
public class DtoUserCredentials implements DtoObject {

	@Id
	private Long id;

	@Parent
	private Key<DtoUser> userKey;

	private String hashedPassword;
	private String hashedPasswordSalt;

	/**
	 * Construit une nouvelle instance de {@link DtoUserCredentials}.
	 */
	public DtoUserCredentials() {

	}

	/**
	 * Identifiant.
	 */
	public Long getId() {
		return id;
	}

	/**
	 * Définit l'identifiant.
	 */
	public void setId(Long id) {
		this.id = id;
	}

	/**
	 * Clef de l'entité de l'utilisateur.
	 */
	public Key<DtoUser> getUserKey() {
		return userKey;
	}

	/**
	 * Définit la clef de l'entité de l'utilisateur.
	 */
	public void setUserKey(Key<DtoUser> userKey) {
		this.userKey = userKey;
	}

	/**
	 * Empreinte du mot de passe de l'utilisateur.
	 */
	public String getHashedPassword() {
		return hashedPassword;
	}

	/**
	 * Définit l'empreinte du mot de passe de l'utilisateur.
	 */
	public void setHashedPassword(String hashedPassword) {
		this.hashedPassword = hashedPassword;
	}

	/**
	 * Salage de l'empreinte du mot de passe de l'utilisateur.
	 */
	public String getHashedPasswordSalt() {
		return hashedPasswordSalt;
	}

	/**
	 * Définit le salage de l'empreinte du mot de passe de l'utilisateur.
	 */
	public void setHashedPasswordSalt(String hashedPasswordSalt) {
		this.hashedPasswordSalt = hashedPasswordSalt;
	}
}
